% Okrelanie czy g³oska jest dwiêczna czy bezdwiêczna
% Jest to krytyczna faza kodera, od prawid³owej decyzji voiced/unvoiced zale¿y w znacznym stopniu jakoæ generowanego dwiêku
if imax1+imax1*0.2>imax0 & imax1-imax1*0.2<imax0
if max0>0.3*auto(1)
Pitch=imax0;
else
Pitch=0;
end
else
Pitch=0;
end
% To samo co wy¿ej tylko w mniej wyrafinowany sposób.
%
% if max0 > 0.3*auto(1)
% Pitch= imax0;
% else
% Pitch= 0;
% end
% LPC wykorzystujê funkcjê LPC z Matlaba
[A G]=lpc(we,10);
% Sk³adanie danych wyjciowych
Coeff(index,1:11)=A; % parametry LPC
Coeff(index,12)=G; % wzmocnienie
Coeff(index,13)=Pitch; % Pitch (jeli Pitch=0 to g³oska jest bezdwiêczna), w przeciwnym wypadku pitch jest odleg³oci¹ pomiêdzy kolejnymi impulsami pobudzenia (w samplach Fs= 8000Hz)
%
if index>=2 & Coeff(index,13)>0 & Coeff(index-1,13)==0
Coeff(index-1,13)=imax1;
end
% numer kolejnej ramki
index=index+1
end
% likwidowanie pojedynczych szumow....
% Jeli kolejne trzy ramki s¹: V, UV, V to rodkow¹ ustaw jako Voiced
% Jeli kolejne trzy ramki s¹: UV, V, UV to rodkow¹ ustaw jako Unvoiced
for l=1:index-3
if Coeff(l,13)>0 & Coeff(l+1,13)==0 & Coeff(l+2,13)>0